package com.utf999.qiangmanger.dao.iface;

import java.util.List;

import com.utf999.qiangmanger.dao.IQiangDAO;
import com.utf999.qiangmanger.entity.orm.CommodityEntity;
import com.utf999.qiangmanger.exception.BizException;

/**
 * @author yinwenjie
 *
 */
public interface ICommodityDAO extends IQiangDAO<CommodityEntity> {
	/**
	 * 查询相关类型下的商品信息（根据status的值决定是否要涉及到商品状态的判断）
	 * @param typeid 指定的商品类型编号信息
	 * @param status 如果不传入，则无论商品状态如何都要进行查询；如果传入了值就要依据传入的状态进行查询
	 * @return 
	 * @throws BizException 
	 */
	public List<CommodityEntity> queryCommoditysByType(String typeid , Integer status) throws BizException;
	
	/**
	 * 查询指定的公司下的商品名称信息 
	 * @param companyid 
	 * @param commodityName 
	 * @return 
	 * @throws BizException 
	 */
	public CommodityEntity queryCommodityByCommodityName(String companyid , String commodityName) throws BizException;
	
	/**
	 * 查询指定的公司下的商品编号信息 
	 * @param companyid 
	 * @param commodityCode 
	 * @return 
	 * @throws BizException 
	 */
	public CommodityEntity queryCommodityByCommodityCode(String companyid , String commodityCode) throws BizException;
	
	/**
	 * 查询指定的公司下的商品简称信息 
	 * @param companyid 
	 * @param sortName 
	 * @return 
	 * @throws BizException 
	 */
	public CommodityEntity queryCommodityBySortName(String companyid , String sortName) throws BizException;
	
	/**
	 * 使用相似查询，针对商品简称进行查询
	 * @param likeName 相似查询的关键字
	 * @return 符合相似查询关键字的信息将被返回
	 * @throws BizException 
	 */
	public List<CommodityEntity> queryCommodityLikeSortName(String companyid , String likeName) throws BizException;
	
	/**
	 * 使用相似查询，针对商品名称进行查询
	 * @param likeName 相似查询的关键字
	 * @return 符合相似查询关键字的信息将被返回
	 * @throws BizException 
	 */
	public List<CommodityEntity> queryCommodityLikeCommodityName(String companyid , String likeName) throws BizException;
	
	/**
	 * 按照工单编号，查询这个工单下对应的商品信息
	 * @param orderinfoid 指定的工单编号（肯定是“消费”服务单）
	 * @return 
	 * @throws BizException
	 */
	public List<CommodityEntity> queryCommodityByOrderinfo(String orderinfoid) throws BizException;
}
